package com.xb.loan.account.service;


import com.xb.loan.account.service.bean.AccountDeltaVO;
import com.xb.loan.log.exception.BizException;
import com.xb.loan.usercenter.service.user.bean.UserInfoVO;

/**
 * 账户服务接口
 */
public interface IAccountService {
	/**
	 * 加钱，记入账
	 * @param foreignId 记账来源订单ID
	 * @param userInfoVO 记账主体
	 * @param accountDeltaVO 账户余额增加
	 * @param billType 记账类型
	 * @param accountPeriod  账期，业务系统传入 格式“yyyymmdd”
	 * @throws BizException
	 */
	public void addMoney(String foreignId, UserInfoVO userInfoVO, AccountDeltaVO accountDeltaVO, int billType, String accountPeriod) throws BizException;
	
	/**
	 * 扣钱，记出账（只使用Money字段）
	 * @param foreignId 记账来源订单ID
	 * @param userInfoVO 记账主体
	 * @param accountDeltaVO 扣除账户余额
	 * @param billType 记账类型
	 * @param accountPeriod 账期，业务系统传入  格式“yyyymmdd”
	 * @throws BizException
	 */
	public void deductMoney(String foreignId,  UserInfoVO userInfoVO, AccountDeltaVO accountDeltaVO, int billType, String accountPeriod) throws BizException;
	
	/**
	 * 冲正接口
	 * @param userId 用户ID
	 * @param foreignId 记账来源订单ID
	 * @param billType 记账类型
	 */
	public void flushes(String userId, String foreignId, int billType) throws BizException;
	
}
